A Call-by-Need Lambda Calculus with Scoped Work Decorations
نویسندگان
چکیده
The polymorphically typed functional core language LRP is a lambda calculus with recursive let-expressions, data constructors, case-expressions, and a seq-operator that uses call-by-need evaluation. In this work LRP is extended by scoped work decorations to ease computations when reasoning on program improvements. The considered language LRPw extends LRP by two constructs to represent work (i.e. numbers of reduction steps) that can be shared between several subexpressions. Due to a surprising observation that this extension is proper, some effort is required to re-establish the correctness and optimization properties of a set of program transformations also in LRPw. Based on these results, correctness of several useful computation rules for work decorations is shown.
منابع مشابه
Relating Two Semantics of Locally Scoped Names
The operational semantics of programming constructs involving locally scoped names typically makes use of stateful dynamic allocation: a set of currently-used names forms part of the state and upon entering a scope the set is augmented by a new name bound to the scoped identifier. More abstractly, one can see this as a transformation of local scopes by expanding them outward to an implicit top-...
متن کاملThe Call-by-Need Lambda Calculus (Unabridged)
We present a calculus that captures the operational semantics of call-by-need. We demonstrate that the calculus is connuent and standardizable and entails the same observational equivalences as call-by-name lambda calculus.
متن کاملCall - by - need splits the mode !
We present a separated-linear lambda calculus based on a reenement of linear logic which allows separate control of weakening and contraction. The calculus satisses subject reduction and connuence, has a straightforward notion of standard evaluation, and inherits previous results on the relationship of Girard's two translations from minimal intuitionistic logic to linear logic with call-by-name...
متن کاملHow to Prove Similarity a Precongruence in Non-Deterministic Call-by-Need Lambda Calculi
Extending the method of Howe, we establish a large class of untyped higher-order calculi, in particular such with call-by-need evaluation, where similarity, also called applicative simulation, can be used as a proof tool for showing contextual preorder. The paper also demonstrates that Mann’s approach using an intermediate “approximation” calculus scales up well from a basic call-by-need non-de...
متن کاملSimulation in the Call-by-Need Lambda-Calculus with letrec
This paper shows the equivalence of applicative similarity and contextual approximation, and hence also of bisimilarity and contextual equivalence, in the deterministic call-by-need lambda calculus with letrec. Bisimilarity simplifies equivalence proofs in the calculus and opens a way for more convenient correctness proofs for program transformations. Although this property may be a natural one...
متن کامل